home *** CD-ROM | disk | FTP | other *** search
/ Especial Multimedia / Especial Multimedia.iso / Multimed / Prg / BMP2PIC.ZIP / BMP2PIC.FRM < prev    next >
Text File  |  1997-09-14  |  8KB  |  260 lines

  1. VERSION 2.00
  2. Begin Form Bmp2Pic 
  3.    BackColor       =   &H00808000&
  4.    Caption         =   "Simulated Keyboard (only 1 key)"
  5.    ClientHeight    =   3420
  6.    ClientLeft      =   4125
  7.    ClientTop       =   3420
  8.    ClientWidth     =   4395
  9.    Height          =   3825
  10.    Icon            =   BMP2PIC.FRX:0000
  11.    Left            =   4065
  12.    ScaleHeight     =   228
  13.    ScaleMode       =   3  'Pixel
  14.    ScaleWidth      =   293
  15.    Top             =   3075
  16.    Width           =   4515
  17.    Begin TextBox txtOUTPUT 
  18.       FontBold        =   0   'False
  19.       FontItalic      =   0   'False
  20.       FontName        =   "élér âSâVâbâN"
  21.       FontSize        =   12
  22.       FontStrikethru  =   0   'False
  23.       FontUnderline   =   0   'False
  24.       Height          =   435
  25.       Left            =   60
  26.       TabIndex        =   0
  27.       Top             =   60
  28.       Width           =   4275
  29.    End
  30.    Begin PictureBox picKEYBOARD 
  31.       BorderStyle     =   0  'None
  32.       Height          =   2895
  33.       Left            =   60
  34.       Picture         =   BMP2PIC.FRX:0302
  35.       ScaleHeight     =   193
  36.       ScaleMode       =   3  'Pixel
  37.       ScaleWidth      =   285
  38.       TabIndex        =   1
  39.       Top             =   480
  40.       Width           =   4275
  41.       Begin PictureBox picDEST 
  42.          BackColor       =   &H00FFFF00&
  43.          BorderStyle     =   0  'None
  44.          Height          =   255
  45.          Left            =   3840
  46.          Picture         =   BMP2PIC.FRX:700C
  47.          ScaleHeight     =   17
  48.          ScaleMode       =   3  'Pixel
  49.          ScaleWidth      =   17
  50.          TabIndex        =   2
  51.          Top             =   1200
  52.          Visible         =   0   'False
  53.          Width           =   255
  54.       End
  55.       Begin SSRibbon grpKEY 
  56.          AutoSize        =   0  'None
  57.          BevelWidth      =   1
  58.          Height          =   315
  59.          Left            =   3780
  60.          PictureDnChange =   0  'Use 'PictureUp' Bitmap Unchanged
  61.          Top             =   1740
  62.          Width           =   315
  63.       End
  64.       Begin Image imgSTOPFOCUS 
  65.          Height          =   15
  66.          Left            =   3900
  67.          Top             =   960
  68.          Width           =   15
  69.       End
  70.    End
  71. End
  72. Option Explicit
  73.  
  74. Dim KeyVal$(8, 13)    ' Array to hold key values
  75. Dim RowPos%, ColPos%  ' Col/Row positions to extract array elements data
  76.  
  77. ' Written by:  Ron Edwards
  78. '              PRISM Corp.            Please don't hesitate to point out bugs or make
  79. '              Hiroshima, Japan       other suggestions/comments.  Samples of your unique
  80. '              CIS:  71125,534        solutions to programming challenges are appreciated.
  81.  
  82. Sub CheckKeyPosition (X, Y)
  83.     Dim keycols%, keywdht%, hoffset%, voffset%, keyleft%, keytop%, gap%
  84.     
  85.     keywdht% = ctlREALKEY.Width
  86.     keycols% = 13: hoffset% = 12: voffset% = 12
  87.  
  88.     Select Case X
  89.     Case hoffset% To keywdht% * keycols - 2  ' Valid column range
  90.         ColPos% = Int((X - hoffset%) / (keywdht% - 1))
  91.         Select Case Y  ' Subtract 1 from the ending range number
  92.         Case 12 To 31              ' Keep the top row out of the Case Else
  93.         Case 36 To 135: gap% = 4   ' Between numeric/kana keys
  94.         Case 140 To 179: gap% = 8  ' Between kana/alphabetic keys
  95.         Case Else: GoTo StopFocus
  96.         End Select
  97.         RowPos% = Int((Y - voffset% - gap%) / (keywdht% - 1))
  98.         keyleft% = ColPos% * (keywdht% - 1) + hoffset%
  99.         keytop% = RowPos% * (keywdht% - 1) + voffset% + gap%
  100.         Select Case CStr(RowPos%) & CStr(ColPos%)  ' Don't move the key over empty areas
  101.         Case "27", "47", "212", "312", "412": GoTo StopFocus
  102.         End Select
  103.         Call CopyBmp2Pic(keyleft%, keytop%)  ' Copy the picture area at the new position to the button control's .PictureUp property
  104.         ctlREALKEY.Move keyleft%, keytop%
  105.     Case Else: GoTo StopFocus
  106.     End Select
  107.  
  108. Exit Sub
  109.  
  110.     ' Put's the image control under the mouse pointer so the focus isn't taken
  111.     ' away from the text control if the mouse is clicked on a part of the picture.
  112. StopFocus: imgSTOPFOCUS.Move X, Y
  113.  
  114. End Sub
  115.  
  116. Sub Form_Load ()
  117.  
  118.     Move (Screen.Width - Width) / 2, (Screen.Height - Height) / 2
  119.  
  120.     Set ctlSOURCE = picKEYBOARD
  121.     Set ctlDEST = picDEST
  122.     Set ctlREALKEY = grpKEY
  123.  
  124.     KeyVal(0, 0) = "1"
  125.     KeyVal(1, 0) = "a"
  126.     KeyVal(2, 0) = "i"
  127.     KeyVal(3, 0) = "u"
  128.     KeyVal(4, 0) = "e"
  129.     KeyVal(5, 0) = "o"
  130.     KeyVal(6, 0) = "A"
  131.     KeyVal(7, 0) = "N"
  132.  
  133.     KeyVal(0, 1) = "2"
  134.     KeyVal(1, 1) = "ka"
  135.     KeyVal(2, 1) = "ki"
  136.     KeyVal(3, 1) = "ku"
  137.     KeyVal(4, 1) = "ke"
  138.     KeyVal(5, 1) = "ko"
  139.     KeyVal(6, 1) = "B"
  140.     KeyVal(7, 1) = "O"
  141.  
  142.     KeyVal(0, 2) = "3"
  143.     KeyVal(1, 2) = "sa"
  144.     KeyVal(2, 2) = "shi"
  145.     KeyVal(3, 2) = "su"
  146.     KeyVal(4, 2) = "se"
  147.     KeyVal(5, 2) = "so"
  148.     KeyVal(6, 2) = "C"
  149.     KeyVal(7, 2) = "P"
  150.  
  151.     KeyVal(0, 3) = "4"
  152.     KeyVal(1, 3) = "ta"
  153.     KeyVal(2, 3) = "chi"
  154.     KeyVal(3, 3) = "tsu"
  155.     KeyVal(4, 3) = "te"
  156.     KeyVal(5, 3) = "to"
  157.     KeyVal(6, 3) = "D"
  158.     KeyVal(7, 3) = "Q"
  159.     
  160.     KeyVal(0, 4) = "5"
  161.     KeyVal(1, 4) = "na"
  162.     KeyVal(2, 4) = "ni"
  163.     KeyVal(3, 4) = "nu"
  164.     KeyVal(4, 4) = "ne"
  165.     KeyVal(5, 4) = "no"
  166.     KeyVal(6, 4) = "E"
  167.     KeyVal(7, 4) = "R"
  168.  
  169.     KeyVal(0, 5) = "6"
  170.     KeyVal(1, 5) = "ha"
  171.     KeyVal(2, 5) = "hi"
  172.     KeyVal(3, 5) = "fu"
  173.     KeyVal(4, 5) = "he"
  174.     KeyVal(5, 5) = "ho"
  175.     KeyVal(6, 5) = "F"
  176.     KeyVal(7, 5) = "S"
  177.  
  178.     KeyVal(0, 6) = "7"
  179.     KeyVal(1, 6) = "ma"
  180.     KeyVal(2, 6) = "mi"
  181.     KeyVal(3, 6) = "mu"
  182.     KeyVal(4, 6) = "me"
  183.     KeyVal(5, 6) = "mo"
  184.     KeyVal(6, 6) = "G"
  185.     KeyVal(7, 6) = "T"
  186.  
  187.     KeyVal(0, 7) = "8"
  188.     KeyVal(1, 7) = "ya"
  189.     KeyVal(2, 7) = ""
  190.     KeyVal(3, 7) = "yu"
  191.     KeyVal(4, 7) = ""
  192.     KeyVal(5, 7) = "yo"
  193.     KeyVal(6, 7) = "H"
  194.     KeyVal(7, 7) = "U"
  195.  
  196.     KeyVal(0, 8) = "9"
  197.     KeyVal(1, 8) = "ra"
  198.     KeyVal(2, 8) = "ri"
  199.     KeyVal(3, 8) = "ru"
  200.     KeyVal(4, 8) = "re"
  201.     KeyVal(5, 8) = "ro"
  202.     KeyVal(6, 8) = "I"
  203.     KeyVal(7, 8) = "V"
  204.  
  205.     KeyVal(0, 9) = "0"
  206.     KeyVal(1, 9) = "wa"
  207.     KeyVal(2, 9) = "n"
  208.     KeyVal(3, 9) = "wo"
  209.     KeyVal(4, 9) = "#"
  210.     KeyVal(5, 9) = "@"
  211.     KeyVal(6, 9) = "J"
  212.     KeyVal(7, 9) = "W"
  213.  
  214.     KeyVal(0, 10) = "."
  215.     KeyVal(1, 10) = "xa"
  216.     KeyVal(2, 10) = "xi"
  217.     KeyVal(3, 10) = "xu"
  218.     KeyVal(4, 10) = "xe"
  219.     KeyVal(5, 10) = "xo"
  220.     KeyVal(6, 10) = "K"
  221.     KeyVal(7, 10) = "X"
  222.  
  223.     KeyVal(0, 11) = "-"
  224.     KeyVal(1, 11) = "xya"
  225.     KeyVal(2, 11) = "xyu"
  226.     KeyVal(3, 11) = "xyo"
  227.     KeyVal(4, 11) = "xtsu"
  228.     KeyVal(5, 11) = "--"
  229.     KeyVal(6, 11) = "L"
  230.     KeyVal(7, 11) = "Y"
  231.  
  232.     KeyVal(0, 12) = "/"
  233.     KeyVal(1, 12) = "{BS}" ' Backspace key
  234.     KeyVal(2, 12) = ""
  235.     KeyVal(3, 12) = ""
  236.     KeyVal(4, 12) = ""
  237.     KeyVal(5, 12) = " "    ' Space key
  238.     KeyVal(6, 12) = "M"
  239.     KeyVal(7, 12) = "Z"
  240.  
  241. End Sub
  242.  
  243. Sub grpKEY_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
  244.  
  245.     If grpKEY.Value Then grpKEY.Value = False Else Exit Sub  ' Unpress the key
  246.     ' Process simulated click event here
  247.     
  248.     If RowPos% = 1 And ColPos% = 12 Then SendKeys KeyVal(RowPos%, ColPos%): Exit Sub ' Backspace key
  249.     '  SendKeys doesn't work properly with Japanese characters so use .SelText for rest
  250.     If TypeOf ActiveControl Is TextBox Then ActiveControl.SelText = KeyVal(RowPos%, ColPos%)
  251.  
  252. End Sub
  253.  
  254. Sub picKEYBOARD_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)
  255.     
  256.     Call CheckKeyPosition(X, Y)
  257.  
  258. End Sub
  259.  
  260.